home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / docs / mb_sep.lha / SOURCE / FloodFillCode
Text File  |  1995-08-01  |  1KB  |  66 lines

  1.  
  2.     1 FILE$=Fsel$(,,"Load a Pic","Right MB for Volumes"): Hide
  3.     2 Screen Close 0
  4.  
  5.     3 Load Iff FILE$, 1
  6.  
  7.     4 Load Iff FILE$, 2
  8.     5 Screen 2: Curs Off : Flash Off
  9.     6 Cls 0
  10.  
  11.     7 SPLERGE[0,1,2]
  12.  
  13.     8 Wait 50
  14.     9 Fade 2
  15.    10 Wait 30
  16.  
  17.    11 Screen Close 1 : Screen Close 2
  18.    12 End 
  19.  
  20.  
  21.    13 Procedure SPLERGE[SPEED,SOURCE,DEST]
  22.    14    Screen SOURCE
  23.    15    SOURCE_SIZE=Screen Height
  24.    16    Screen DEST
  25.    17    DEST_SIZE=Screen Height
  26.    18    V=Min(SOURCE_SIZE,DEST_SIZE)
  27.    19    Screen SOURCE
  28.    20    SOURCE_SIZE=Screen Width
  29.    21    Screen DEST
  30.    22    DEST_SIZE=Screen Width
  31.    23    H=Min(SOURCE_SIZE,DEST_SIZE)
  32.  
  33.    24    For LOP=V-1 To 1 Step -1
  34.    25       _FILL[DEST,0,0,H,SOURCE,LOP]
  35.  
  36.    26       If SPEED
  37.    27          Wait SPEED
  38.    28       End If 
  39.  
  40.    29    Next LOP
  41.  
  42.    30 End Proc
  43.  
  44.  
  45.    31 Procedure _FILL[DEST,SX,SY,WIDTH_X,SRC,LINE]
  46.    32    Screen Copy SRC,0,LINE,WIDTH_X,LINE+1 To DEST,SX,SY
  47.    33    STP=1 : COUNT=1
  48.  
  49.    34    While COUNT<LINE
  50.    35       Screen Copy DEST,0,0,WIDTH_X,STP To DEST,0,STP
  51.    36       STP=STP*2
  52.    37       COUNT=COUNT+STP
  53.    38    Wend 
  54.  
  55.    39    If COUNT>LINE
  56.    40       Screen Copy DEST,0,0,WIDTH_X,LINE-STP To DEST,0,STP
  57.    41    End If 
  58.  
  59.    42    If COUNT=LINE
  60.    43       Screen Copy DEST,0,0,WIDTH_X,1 To DEST,0,LINE-1
  61.    44    End If 
  62.  
  63.    45    Wait Vbl 
  64.  
  65.    46 End Proc
  66.